/**
 * @(#)IncrementoPropuestoK.java Feb 20, 2007
 *
 * Copyright (c) 2005-2010 Psiqueware S.A. de C.V. All Rights Reserved.
 * This software is the proprietary information Psiqueware S.A. de C.V.
 * Use is subject to license terms.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *
 * <br/>Usuario : Psique
 * <br/>Creaci&oacute;n: Feb 20, 2007 - 12:57:10 PM
 * <br/>
 * <br/>
 * <br/><t5>Cambios :</t5>
 * <br/><b>Fecha | Autor  |  Cambios</b>
 * <ul>
 * <li>Feb 20, 2007 | <a href = "mailto:AngelElectrico@PsiqueWare.com">Psique</a> | Creaci&oacute;n del Objeto.</li>
 *
 * </ul>
 */

package com.psiqueware.jazmin.empresas.recursos.humanos.compensaciones.modelo;

import com.psiqueware.alheli.basico.BaseObject;
import com.psiqueware.jazmin.empresas.recursos.humanos.compensaciones.Incremento;
import com.psiqueware.jazmin.empresas.recursos.humanos.compensaciones.IncrementoPropuesto;

import java.math.BigDecimal;

/**
 * Aumento de Sueldo propuesto.
 * <br/>Paquete Original: com.psiqueware.laVIE.empresas.empleados.compensaciones.modelo
 * <br/>Nombre  Original: IncrementoPropuestoK
 * <br/>Oprima para ver : <a href="IncrementoPropuestoK.java.html"><i>C&oacute;digo Fuente</i> </a>
 *
 * @author <a href="mailto:AngelElectrico@PsiqueWare.com">Psique</a>
 * @version Revision: 1.1 Feb 20, 2007 12:57:10 PM
 */
public class IncrementoPropuestoK extends BaseObject implements IncrementoPropuesto
{

    /** Aumento de {@link Sueldo} sugerido por el sistema. */
    private BigDecimal m_cantidad;


    /** N&uacute;mero mayor a 0 que indica el porcetaje a aumentar. */
    private BigDecimal m_porcentaje;

    /**
     * Clave del {@link Empleado} que propuso el {@link IncrementoPropuesto}. En caso de haber
     * sido propuesto por el sistema la clave sera <code>null</code>.
     */
    private String m_clavePropuestoPor;

    /** Constructor de IncrementoPropuestoK. */
    public IncrementoPropuestoK ()
    {

    }

    public IncrementoPropuestoK ( final Incremento incremento )
    {
        setCantidad ( incremento.getCantidad () );
        setPorcentaje ( incremento.getPorcentaje () );
    }


    /**
     * Devuelve el Aumento de {@link Sueldo} sugerido por el sistema.
     *
     * @return valor de 'cantidad'.
     *
     * @see BigDecimal
     */
    public BigDecimal getCantidad ()
    {
        return m_cantidad;
    }

    /**
     * Establece el Aumento de {@link Sueldo} sugerido por el sistema.
     *
     * @param cantidad nuevo valor para 'cantidad'.
     *
     * @see BigDecimal
     */
    public void setCantidad ( final BigDecimal cantidad )
    {
        m_cantidad = cantidad;
    }


    /**
     * Devuelve el N&uacute;mero mayor a 0 que indica el porcetaje a aumentar.
     *
     * @return valor de 'porcentaje'.
     *
     * @see BigDecimal
     */
    public BigDecimal getPorcentaje ()
    {
        return m_porcentaje;
    }

    /**
     * Establece el N&uacute;mero mayor a 0 que indica el porcetaje a aumentar.
     *
     * @param porcentaje nuevo valor para 'porcentaje'.
     *
     * @see BigDecimal
     */
    public void setPorcentaje ( final BigDecimal porcentaje )
    {
        m_porcentaje = porcentaje;
    }

    /**
     * Devuelve el Clave del {@link Empleado} que propuso el {@link IncrementoPropuesto}. En caso de haber
     * sido propuesto por el sistema la clave sera <code>null</code>.
     *
     * @return valor de 'clavePropuestoPor'.
     *
     * @see String
     */
    public String getClavePropuestoPor ()
    {
        return m_clavePropuestoPor;
    }

    /**
     * Establece el Clave del {@link Empleado} que propuso el {@link IncrementoPropuesto}. En caso de haber
     * sido propuesto por el sistema la clave sera <code>null</code>.
     *
     * @param clavePropuestoPor nuevo valor para 'clavePropuestoPor'.
     *
     * @see String
     */
    public void setClavePropuestoPor ( final String clavePropuestoPor )
    {
        m_clavePropuestoPor = clavePropuestoPor;
    }

    /**
     * Convierte este {@link IncrementoPropuesto} a su representación textual.
     *
     * @noinspection DuplicateStringLiteralInspection,HardCodedStringLiteral,HardcodedLineSeparator
     */
    public String toString ()
    {
        StringBuilder sb = new StringBuilder ();
        sb.append ( "<Instance Class = '" ).append ( this.getClass ().getCanonicalName () ).append ( "'>" );
        sb.append ( "<cantidad>" ).append ( m_cantidad ).append ( "</cantidad> " );
        sb.append ( "<porcentaje>" ).append ( m_porcentaje ).append ( "</porcentaje> " );
        sb.append ( "<clavePropuestoPor>" ).append ( m_clavePropuestoPor ).append ( "</clavePropuestoPor> " );
        sb.append ( "</Instance>" );
        return sb.toString ();
    }
}

